package co.uk.digitalify;

import java.util.Date;

import pojos.Usuario;
import util.Respuesta;
import util.Servicio;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

// Guarda los datos de los nuevos usuarios
public class RegistrarUsuarioActivity extends Activity implements ReceptorRespuesta {

	private EditText name;
	private EditText userName;
	private EditText password;
	private EditText email;
	private EditText metodoPago;	
	private Spinner spTipoCuenta;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_registrar_usuario);
		
		// Campos a guardar
		name = (EditText)findViewById(R.id.edtNombreCuenta);
		userName = (EditText)findViewById(R.id.edtNombreUsuarioCuenta);
		password = (EditText)findViewById(R.id.edtPasswordRegistrar);
		email = (EditText)findViewById(R.id.edtEmailMiCuenta);
		metodoPago = (EditText)findViewById(R.id.edtMetodoPagoMiCuenta);
		spTipoCuenta=(Spinner)findViewById(R.id.spTipoCuentaReg);		
		cargarDatos();
	}

	private void cargarDatos() {
		String[] tipos_usuario=new String[] {getString(R.string.standardType), getString(R.string.providerType)};
		ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, 
				android.R.layout.simple_list_item_1, tipos_usuario);
		spTipoCuenta.setAdapter(adapter);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.registrar_usuario, menu);
		return true;
	}
	
	public void btnRegistrarUsuarioOnClick(View v) {
		if(validarDatos()) {
			String usu_metodo_pago=null;
			if(!metodoPago.getText().toString().isEmpty()) {
				usu_metodo_pago=metodoPago.getText().toString();
			}
			int usu_tipo=spTipoCuenta.getSelectedItemPosition();
			Usuario nuevo=new Usuario(userName.getText().toString(), 
					password.getText().toString(), name.getText().toString(), 
					usu_tipo, usu_metodo_pago, 
					email.getText().toString(), new Date(), new Date(), 0);
			TareaConexionBD tbd=new TareaConexionBD(Servicio.getHost(), Servicio.getPuerto(),
					this, "INSERTAR usuario");
			tbd.execute(Servicio.getActualizarUsuario(nuevo));			
		}
	}
	
	private boolean validarDatos() {
		
		return !name.getText().toString().isEmpty()
				&& !userName.getText().toString().isEmpty()
				&& !password.getText().toString().isEmpty()
				&& !email.getText().toString().isEmpty();
	}

	@Override 
	public boolean onOptionsItemSelected(MenuItem item) {
		 
        switch (item.getItemId()) {

        case R.id.acercaDe:
        	Intent iAcercaDe = new Intent(this, AcercaDeActivity.class);	 
            startActivity(iAcercaDe);
            break;
        case R.id.ayuda:
            // falta ver si se hace general o especifico para cada pantalla
        	Intent iAyuda = new Intent(this, AyudaActivity.class);	 
            startActivity(iAyuda);
            break;
        case R.id.configuracion:
            // falta concretar que incluimos
        	Intent iConfig = new Intent(this, Configuracion.class);	 
            startActivity(iConfig);
            break;
        }
        return true; 
	}

	@Override
	protected void onResume(){
	// Al volver a la actividad se comprueba el estado de la musica
		if (Musica.get_mireproductor() == null){
			Musica.reproduce(this, R.raw.avenetia_red);
		 }
	    super.onResume();
	}

	@Override
	public void recibirRespuesta(Respuesta[] resp, String tipoResp) {
		if(tipoResp.equals("INSERTAR usuario")) {
			if(resp[0].getResultado()==-1 || resp[0].getResultado()==0) {
				Toast.makeText(this, "Error Registrando Usuario: "+resp[0].getMensaje(),
						Toast.LENGTH_LONG).show();
			} else {
				Toast.makeText(this, "Usuario Registrado correctamente",
						Toast.LENGTH_LONG).show();
			}
		}
	}
}
